#include "led.h"
#include "delay.h"
#include "sys.h"

unsigned char led=0;
static void ledflash(void);
static void ledoff(void);

int main(void)
{	
	unsigned char key=0;
	 
	delay_init(); 
	KEY_Init();
	LED_Init();	

	while(1)
	{
		if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1))
		{
			key=!key;
			led=0;
		}
		
		if(key) ledflash();
		else ledoff();
	}
}

 
static void ledflash(void)
{
	switch(led%4)
	{
		case 0:
			GPIO_ResetBits(GPIOA,GPIO_Pin_0);
			break;
		case 1:
			GPIO_ResetBits(GPIOA,GPIO_Pin_1);
			break;
		case 2:
			GPIO_ResetBits(GPIOA,GPIO_Pin_2);
			break;
		case 3:
			GPIO_ResetBits(GPIOA,GPIO_Pin_3);
			break;
		default:
			led = 0;
	}
	++led;
	delay_ms(500);
}

static void ledoff(void)
{
	GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);
}
